import request from "@/service/request";

export interface ILoginData {
  /**
   * 登录密码
   */
  password: string;
  /**
   * 登录账号
   */
  userAccount: string;
  /**
   * 版本号，默认传1.0
   */
  version: string;
}

export interface ILoginResponse {
  /**
   * 账号
   */
  account: string;
  /**
   * 所属事业部，Dict:[0006]
   */
  businessUnit: string;
  /**
   * 头像
   */
  headIcon: null | string;
  /**
   * 联系电话
   */
  phone: string;
  /**
   * 性别，Dict:[0003]
   */
  sex: string;
  /**
   * 用户token
   */
  token: string;
  /**
   * 用户id
   */
  userId: string;
  /**
   * 姓名
   */
  userName: string;
  /**
   * 昵称
   */
  userNick: null | string;
  /**
   * 用户类型，Dict:[0004]
   */
  userType: null | string;
}

export interface IUserResourceResponse {
  /**
   * 权限编码
   */
  authorityCode: string;
  /**
   * 父级Id
   */
  parentId: string;
  /**
   * 子资源
   */
  children: IUserResourceResponse[];
  /**
   * 图标
   */
  icon: null | string;
  /**
   * 路径
   */
  resourceCode: string;
  /**
   * 描述
   */
  resourceDesc: null | string;
  /**
   * 资源id
   */
  resourceId?: string;
  /**
   * 资源名称
   */
  resourceName: string;
  /**
   * 类型，Dict:[0002]
   */
  resourceType: string;
  /**
   * 排序
   */
  sortNo: number;
  /**
   * 状态，Dict:[0001]
   */
  status: string;
  /**
   * 是否显示
   */
  showFlag: string;
}

/**
 * SystemResourceInfo，系统资源信息
 */
export interface SystemResourceInfo {
  /**
   * 权限编码
   */
  authorityCode: string;
  /**
   * 子资源
   */
  children: SystemResourceInfo[];
  /**
   * 图标
   */
  icon: null | string;
  /**
   * 路径
   */
  resourceCode: string;
  /**
   * 描述
   */
  resourceDesc: null | string;
  /**
   * 资源id
   */
  resourceId?: string;
  /**
   * 资源名称
   */
  resourceName: string;
  /**
   * 类型，Dict:[0002]
   */
  resourceType: string;
  /**
   * 排序
   */
  sortNo: number;
  /**
   * 状态，Dict:[0001]
   */
  status: string;
}

/**
 * 用户登录功能
 * @param data 登录所需的数据
 * @returns 登录响应数据
 */
export const login = (data: ILoginData) => {
  return request.post<ILoginData, ILoginResponse>("/sticker/manage/api/password/update", data);
};

export const loginout = () => {
  return request.post("/sticker/manage/api/logout");
};

/**
 * 获取用户资源信息
 * @returns 用户资源信息对象
 */
export const getUserResource = () => {
  return request.post<any, ArrList<IUserResourceResponse[]>>(
    "/sticker/manage/api/user/list/byUser"
  );
};
